package com.dev.op.util;

import com.dev.op.entity.JudgeResult;
import lombok.Data;
import org.springframework.stereotype.Component;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

@Component
public class JudgeResultParser {
//    public JudgeResult parse(String output) {
//        JudgeResult result = new JudgeResult();
//
//        Pattern pattern = Pattern.compile("\\[(.*?)]=(.*)");
//        String[] lines = output.split("\\R"); // 按行分割，兼容换行符
//
//        for (int i=0;i<lines.length;i++) {
//            String line = lines[i];
//            if(i==0){
//                result.setTaskId(line);
//                continue;
//            }
//            Matcher matcher = pattern.matcher(line.trim());
//            if (matcher.matches()) {
//                String key = matcher.group(1);
//                String value = matcher.group(2).trim();
//
//                switch (key) {
//                    case "success":
//                        result.setSuccess(Boolean.parseBoolean(value));
//                        break;
//                    case "status":
//                        result.setStatus(value);
//                        break;
//                    case "exitCode":
//                        result.setExitCode(Integer.parseInt(value));
//                        break;
//                    case "timeUsedMs":
//                        if(value.isEmpty()){
//                            result.setTimeUsedMs("0.0");
//                        }
//                        else {
//                            result.setTimeUsedMs(value);
//                        }
//                        break;
//                    case "memoryUsedKb":
//                        if(value.isEmpty()){
//                            result.setMemoryUsedKb("0.0");
//                        }
//                        else {
//                            result.setMemoryUsedKb(value);
//                        }
//                        break;
//                    default:
//                        // 忽略未知字段
//                        break;
//                }
//            }
//        }
//        return result;
 //   }
}
